package javaTeste.tConstrutor;

import java.atributo.TiposPrimitivos;
import java.classe.Classe;
import java.classe.Construtor;
import java.classe.TokensSource;
import java.parametro.Parametro;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

public class TesteCriarConstrutorDeUmaClasse implements Especificacao {
	Construtor agua = null;

	@Before
	public void up() {
		agua = new Construtor(new Classe("Agua"));
	}

	@Test
	public void construtorAgua() {
		Assert.assertEquals("Agua(){}", agua.codigoFonte());
	}

	@Test
	public void construtorAguaParametroINT_s_String_d() {
		agua.addParametro(new Parametro(TiposPrimitivos.INT, "s"));
		agua.addParametro(new Parametro(TiposPrimitivos.STRING, "d"));
		Assert.assertEquals("Agua(int s, String d){}", agua.codigoFonte());

	}

	@Test
	public void construtorAguaPrivado() {
		agua.setModificador(TokensSource.MODIFICADORPRIVADO);
		Assert.assertEquals("private Agua(){}", agua.codigoFonte());

	}

	@Test
	public void construtorAguaExceptionAssign() {
		agua.addExceptionAssign(new Classe("Exception"));
		Assert.assertEquals("Agua()throws Exception{}", agua.codigoFonte());

	}

}
